In-vain links#
This note is for anyone coding causal claims, by hand or by checking what an AI has coded, who meets sentences like "despite the extra lessons, her grades did not improve". It sets out how we record an influence that was aimed at an outcome which did not happen.
In short#
When a source says an influence was aimed at an outcome that did not happen, code the outcome it was aimed at, and put a cross, ×, at the very start of the effect label. Read the cross as "in vain".
"Despite the extra coaching, her grades did not improve."
Extra coaching --> ×Better grades: extra coaching, in vain, for better grades.
"The river still rose, despite the flood-prevention work."
Flood-prevention work --> ×~River levels rose: flood-prevention work, in vain, against the river rising.
- The cross goes only on the effect, and only at the very start of the label, before any
~and before any hierarchy (×~Flooding; river levels rose). ×Better gradesis a separate factor fromBetter grades. So an in-vain link is never counted as evidence that her grades improved, nor that the coaching held them down. Everything else about the link is ordinary: one cause, one effect, a quote and a source.- If the speaker also names what prevailed, code that as an ordinary link to what actually happened. "The heavy rains made the river rise, despite the prevention work" gives
Heavy rains --> River levels roseandPrevention work --> ×~River levels rose. - Use it only for outcomes the speaker presents as not achieved. Partial success is success: "it raised awareness a little" is an ordinary link. An outcome that nothing was said to have pushed for is not an in-vain link either.
- To find them, search factor labels for
×. Each in-vain outcome is its own box on the map, so a map shows what people tried that did not work next to what actually happened.
The rest of this note explains why we need the convention, works through more examples, and sets out what an in-vain link means formally.
Why we need it#
Causal mapping codes what people say about causes. Wherever someone claims that one thing influences another, we code that claim as a link from the cause to the effect, with a note of where it came from (see our approach is minimalist and causal mapping for outsiders). Our minimalist approach codes only bare cause-to-effect links and leaves most detail off the link.
An influence that pushed for something and failed is a hue of causation this basic system cannot express. But it is too common, and too informative, to do without. So, reluctant as we always are to add to a minimal system, we add one small marker to the effect label, alongside the other small extensions to the base (opposites and sentiment, see combining opposites).
The flood-prevention work is the kind of thing that pushes against rising water. In realist terms (see being realist about causation) it was a real influence with a real tendency to work against the outcome, but on this occasion it was not enough. The coaching likewise had the causal power to lift her grades, but the improvement did not come. One influence was meant to block something and the other to bring something about, but either way the sentence tells us two things at once:
- An influence was present and pushed towards an outcome: the river not rising, better grades.
- On this occasion that outcome did not happen.
Speakers mark these claims with "despite", "in spite of", "even though", "in vain", "tried to ... but", "failed to".
The obvious codings all fail:
Extra coaching --> Better gradessays the coaching improved her grades, which the speaker denies.Extra coaching --> ~Better grades(the tilde~marks the opposite of a factor) says the coaching stopped her grades improving, which the speaker also denies.- Coding nothing throws away both pieces of information: that an influence was present, and that it failed.
But couldn't you just use opposing arrows like in systems modelling?#
A systems modeller will say there is no problem here. Code two arrows into the outcome: a positive one from the rains, which raise the river, and a negative one from the prevention work, which lowers it. Whichever is stronger wins, and the river's level is the net result. For systems modelling that is a reasonable move, and it is roughly how signed, weighted influence diagrams already work.
But look at what it takes to make those arrows say what the speaker said. To record that the prevention work lost and the river rose anyway, the modeller has to put magnitudes on the two arrows and compute a resultant, or add further codes for "this one prevailed". The opposing-arrows picture on its own does not tell you which side won, or whether the outcome actually happened.
The real difference is that we are not building a model of the river system. We are encoding what people say and think: claims, cognitions, something much closer to language than to a quantitative model of forces (see factors are not variables and causal mapping starts from what people actually say). When someone says "in spite of", "although" or "even though", they are expressing an idea with a particular flavour (see Talmy 1988): they name an influence that was real and relevant, then set it aside as having failed. It is open to question whether two opposing arrows, one a little larger than the other, captures that idea at all.
So in-vain coding is an extension we add to capture, in the language of claims, something a systems modeller can arguably get out of the box from signed and weighted arrows. We stay close to what people say and pay for it with one extra marker, where the systems modeller pays for the net-result calculation with numbers and machinery which as humble causal mappers we do not have or want.
Telling an in-vain link from an ordinary one#
Compare these two claims about the same programme:
"The wellbeing programme failed to improve staff morale."
Wellbeing programme --> ×Staff morale
"The budget cuts reduced staff morale."
Budget cuts --> ~Staff morale
Both sentences end with morale low. Only the first is in vain. The budget cuts did what they pushed for, so that is an ordinary link, with the fall carried by ~.
When the speaker names both the influence that failed and the one that beat it, code each as it comes: the winner is an ordinary link to what actually happened, and the loser is an in-vain link to what it was aimed at.1
"The heavy rains made the river levels rise, despite the prevention and clearance work."
Heavy rains --> River levels rosePrevention and clearance work --> ×~River levels rose
More worked examples#
"Despite me reminding him several times, he still missed the train."
Repeated reminders --> ×~Missed the train
The reminders pushed for him not missing the train. No winner is named, so this is the only link.
"The fan failed to cool him down because the sun was too strong."
Strong sun --> Feeling hotFan --> ×Feeling cooler
"We ran the training twice but it never changed how people actually write their bids."
Training workshops --> ×People write their bids differently
"It did raise awareness a little, but nobody actually changed what they did."
Campaign --> Awareness raised a littleCampaign --> ×People changed what they do
The first link is ordinary, with the hedge carried by its label.
What can we do with in-vain links?#
- See them on the map. In-vain outcomes appear as their own boxes, next to what actually happened.
- List them. Search factor labels for
×to see every in-vain claim in a project, or for×and one outcome to see everything that was pushed for, in vain, about it. - Compare. For one influence and one outcome, set the sources that say it worked (
Flood-prevention work --> ~River levels rose) against those that say it was in vain (Flood-prevention work --> ×~River levels rose). That contrast can matter a great deal to an evaluation. - Count them separately. Because the in-vain outcome is a separate factor, its links are counted apart from the evidence that the outcome happened (on counting evidence, see counting and comparing influences and assessing the evidence for a link).
- Count them together. Removing the cross by hand, or with a filter, adds the in-vain links to the evidence that the influence was present and pushing, whether or not it was effective.
Optional background: force dynamics#
You do not need any theory to use in-vain coding. But it helps to know why "despite" claims feel different from ordinary causal claims.
Leonard Talmy's "force dynamics" (Talmy 1988) treats much of our causal talk as patterned talk about forces: an Agonist with a tendency, towards motion or rest, and an Antagonist that counters it. Talmy analyses "causing" into finer ideas that include "letting", "hindering" and "helping", and notes that the same pattern runs from the physical through to the psychological and social. "Despite" is a canonical force-dynamics marker: it signals a countervailing force that failed to stop the outcome. "The ball kept rolling despite the long grass" has the ball as Agonist and the grass as the Antagonist that did not prevail.
This is why in-vain claims are worth capturing explicitly: they show that a causal power was present and was overcome, which is information about how the world works, not just noise to discard.
Hard cases (brief notes)#
- In vain plus opposites: is
Z --> ×Yevidence forZ --> ~Y? No. The influence pushed towards Y; it did not push Y away. The cross keeps in-vain outcomes apart from the opposites machinery, so×~Yis not paired with×Y,Yor~Ywhen opposites are combined. - Bipolar concepts: some pairs (employment and unemployment) are mentioned in very similar contexts but are opposite in ordinary talk. This is why also coding sentiment often becomes very useful when doing AI-assisted clustering and aggregation.
A more formal picture#
This puts in-vain coding into the grammar of A formalisation of causal mapping. There, an ordinary link is read with rule COD-ATOM as "Source S claims that X causally influenced Y in virtue of its causal power to do so", and rule INF-FACT lets us deduce from any link that S claims X happened and Y happened.
Semantics. A row X --> ×Y from source S is read as:
Source S claims that X happened, that X had some causal power to bring about Y, and that Y did not happen.
Three deductions, three lists. From that one row we can deduce three things, each feeding a different query (compare INF-FACT):
- X occurred (with caveats). S claims X happened. So when listing claims that the Xs happened, include in-vain links, with the caveat that the speaker sometimes frames X as only partly realised.
- Y did not occur. S claims
~Y. So when listing cases where Y did not happen, include in-vain links. - X had power towards Y (with caveats). S claims X had some causal power to bring about Y. So when listing cases where X is claimed to have that power, include in-vain links, with the caveat that it is the speaker's claim about a power that did not, in the event, carry the outcome.
What an in-vain link is not. It is never evidence for an ordinary X --> Y, and never for X --> ~Y. Applied naively, INF-FACT deduces only that "×Y" happened, which misleads nobody, because ×Y is not Y.
This paper was drafted with the assistance of Claude, an AI model from Anthropic; the coding convention and the judgements in it are our own.
References
Talmy (1988). Force Dynamics in Language and Cognition. Cognitive Science, 12, 49--100. https://doi.org/10.1207/s15516709cog1201_2.